<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="./data.js"></script>
    <script>
         var arrs = [9,2,6,6,3,4,1,8,5,7,9,9,6];



         //核心 递归  
        //  function quick_sort(arr){
        //     // 结束条件  
        //     if(arr.length <=1){
        //         return arr;
        //     }

        //     // 如果没有达到结束条件  返回 
        //     // 返回待排序的数组 
            

        //     //寻找基准值  
        //     var pivot = arr[arr.length-1]; //数组的最后一个元素作为基准值 
        //     var left = [];
        //     var right = [];

        //     for(var i=0;i<arr.length-1;i++){
        //         if(arr[i]<pivot){
        //             left.push(arr[i]);
        //         }
        //         else{
        //             right.push(arr[i]);
        //         }
        //     }
        //     console.log('left',left);
        //     console.log('基准值',pivot)
        //     console.log('right',right);

            
        //     // console.log(quick_sort(left).concat(pivot,quick_sort(right)))
        //     // 左边数组找基准值   分割数组   
        //     // 右边数组找基准值   分割数组 
        //     return quick_sort(left).concat(pivot,quick_sort(right))
          
            


        //  }
       
         //  quick_sort(arrs);
        //  console.log(quick_sort(arrs));
         /* 
         在函数内部，我们首先判断数组长度是否小于等于1，如果是，则直接返回该数组。

        然后，我们选择数组的最后一个元素作为基准元素（也可以选择其他元素），并创建两个空数组left和right来存储小于和大于基准元素的元素。

        接下来，我们遍历数组的剩余元素，将小于基准元素的元素放入left数组，大于等于基准元素的元素放入right数组。

        最后，我们使用递归调用quickSort函数对left和right数组进行排序，并将结果与基准元素拼接起来，形成最终的排序数组。
         */



         function quick_sort2(arr){
            // 结束条件  
            if(arr.length <=1){
                return arr;
            }

            // 如果没有达到结束条件  返回 
            // 返回待排序的数组 
            

            //寻找基准值  
            var pivot = arr[arr.length-1]['sales']; 
            var left = [];
            var right = [];

            for(var i=0;i<arr.length-1;i++){
                if(arr[i]['sales']<pivot){
                    left.push(arr[i]);
                }
                else{
                    right.push(arr[i]);
                }
            }
            console.log('left',left);
            console.log('基准值',pivot)
            console.log('right',right);

            
            // console.log(quick_sort(left).concat(pivot,quick_sort(right)))
            // 左边数组找基准值   分割数组   
            // 右边数组找基准值   分割数组 
            return arguments.callee(left).concat(pivot,arguments.callee(right))
          
            


         }
       

         console.log(quick_sort2(clothes));



         // 效率高排名  

         // 冒泡 > 选择 > 快速排序 
    </script>
</body>
</html>